
import java.util.Date;


public class countdown  extends Thread
{
	

	global_values values;
	int myrun;
	countdown_over testu=null;
	
	@Override
	public void run() 
	{
		setDaemon( true ); 
		while(true)
			lauflauf();
	}
	
	countdown(global_values values){
		
		myrun=values.getDurchlaufszaehler();
		this.values=values;

		setDaemon( true );
		
		testu = new countdown_over(values);
		
	}
	
	public void lauflauf() 
	{
		
		while(true)
		try{
			Thread.sleep(400);
			System.out.println(checktime());
			while(checktime()&& !isInterrupted() &&values.stop==false)
			{
				
								
				
			Thread.sleep(1000);
			Date datum =new java.util.Date();
	
		if((((values.getDeadline()-datum.getTime())/1000)%60)>=10)
			values.getRemaining_time().setText((((values.getDeadline()-datum.getTime())/1000)/60)+":"+(((values.getDeadline()-datum.getTime())/1000)%60));
		else
			values.getRemaining_time().setText((((values.getDeadline()-datum.getTime())/1000)/60)+":0"+(((values.getDeadline()-datum.getTime())/1000)%60));
		
			int prozent=(int) (((datum.getTime()-values.getZeitwert())*100)/(values.getDeadline()-values.getZeitwert()));
			if((prozent<=100)&&(prozent>=0))
			values.getJProgressBar1().setValue(prozent);
			
			}
			
			
			if(values.stop==false&&checktime()==false&&values.getDeadline()!=0)
			{
			   values.setDeadline(0);
			   values.getJProgressBar1().setValue(100);
			    values.getGobutton().setText("Start TeaTimer");
			    testu.setVisible(true);	
			    testu.playsound();
			    values.setRunning(false);		
			}
	
		}
		
		catch ( InterruptedException e )
		{
		values.stop=true;
    	interrupt()  ;
        values.getRemaining_time().setText("0:00");
        values.getJProgressBar1().setValue(0);
        values.getGobutton().setText("Start TeaTimer");
    	System.out.println( "interrupt" );
    	
		}
			
		}


	
	
	public boolean checktime()
	{
		Date datum =new java.util.Date();
		
		if(datum.getTime()<values.getDeadline())
			{
			
			return true;
			}
		else
			return false;
	}
}


